-
Notifications
You must be signed in to change notification settings - Fork 131
Add agent detection library #4287
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Adds libs/agent package to detect agents (Claude Code, Gemini CLI, Cursor) via environment variables. Used in user agent tracking and available for telemetry and conditional behavior. Detection only succeeds when exactly one agent environment variable is set, preventing ambiguous detection in environments with multiple agents. Implementation: - libs/agent: Detection logic with Detect(), Product(), and Mock() - cmd/root: Integrated agent detection into command execution - Test config: Clear agent env vars in acceptance tests to prevent interference with test outputs Environment variable sources: - CLAUDECODE=1: anthropics/claude-code#531 - GEMINI_CLI=1: https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/commands.md - CURSOR_AGENT=1: https://forum.cursor.com/t/cursor-cli-is-not-setting-cursor-agent-1-environment-variable-while-executing-bash-commands/132427 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
|
Commit: c299cef
21 interesting tests: 10 KNOWN, 8 RECOVERED, 2 flaky, 1 SKIP
Top 48 slowest tests (at least 2 minutes):
|
lennartkats-db
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice! One comment
| claudeCodeEnvVar = "CLAUDECODE" | ||
| geminiCliEnvVar = "GEMINI_CLI" | ||
| cursorAgentEnvVar = "CURSOR_AGENT" | ||
| ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed offline, Codex seems to set CODEX_SANDBOX.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll submit a separate PR for this.
This packages was added in #4287 and centralizes agent detection.
|
Commit: 48d2d47
72 interesting tests: 26 FAIL, 23 KNOWN, 22 BUG, 1 SKIP
Top 50 slowest tests (at least 2 minutes):
|
## Why This packages was added in #4287 and centralizes agent detection. ## Tests Manually confirmed install with `CLAUDECODE=1` and `CURSOR_AGENT=1`.
Changes
Adds libs/agent package to detect AI agents (Claude Code, Gemini CLI, Cursor) via environment variables. Used in user agent tracking and available for telemetry and (future, optional) conditional behavior.
Detection only succeeds when exactly one agent environment variable is set, preventing ambiguous detection in environments with multiple agents.
Implementation:
Environment variable sources: